// 通用函数
import { ElMessage } from 'element-plus'
import { formatDate } from '/@/utils/format-time'
import clipboardCopy from 'clipboard-copy'


// 百分比格式化
const percentFormat = (
  row: EmptyArrayType,
  column: number,
  cellValue: string
) => {
  return cellValue ? `${cellValue}%` : '-'
}
// 列表日期时间格式化
const dateFormatYMD = (
  row: EmptyArrayType,
  column: number,
  cellValue: string
) => {
  if (!cellValue) {
    return '-'
  }
  return formatDate(new Date(cellValue), 'YYYY-mm-dd')
}
// 列表日期时间格式化
const dateFormatYMDHMS = (
  row: EmptyArrayType,
  column: number,
  cellValue: string
) => {
  if (!cellValue) {
    return '-'
  }
  return formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS')
}
// 列表日期时间格式化
const dateFormatHMS = (
  row: EmptyArrayType,
  column: number,
  cellValue: string
) => {
  if (!cellValue) {
    return '-'
  }
  let time = 0
  if (typeof row === 'number') {
    time = row
  }
  if (typeof cellValue === 'number') {
    time = cellValue
  }
  return formatDate(new Date(time * 1000), 'HH:MM:SS')
}
// 小数格式化
const scaleFormat = (value = '0', scale = 4) => {
  return Number.parseFloat(value).toFixed(scale)
}
// 小数格式化
const scale2Format = (value = '0') => {
  return Number.parseFloat(value).toFixed(2)
}
// 点击复制文本
const copyText = async (text: string) => {
  try {
    // 复制
    await clipboardCopy(text)
    // 下面可以设置复制成功的提示框等操作
    ElMessage.success('复制成功！')
    return true
  } catch {
    // 复制失败
    ElMessage.error('复制失败！')
    return false
  }
}

export {
  percentFormat,
  dateFormatYMD,
  dateFormatYMDHMS,
  dateFormatHMS,
  scaleFormat,
  scale2Format,
  copyText
}
